/*
    定义一个长度为[16][16]二维数组并输入或指定所有位置的元素值，分别实现二维数组中所有行和所有列
	中所有元素的累加和并打印
	再分别实现二维数组中左上角到右下角和右上角到左下角所有元素的累加并打印

*/
import java.util.Random;
public class ShuZu {
    //定义一个二维数组
    int [][] arr = new int [16][16];
    //实现二维数组展示的成员方法
    void show(){
        //将二维数组进行赋值
        for (int i = 0;i < 16;i++){
            for (int j = 0;j < 16;j++){
                Random x = new Random();
                //在单行中给数组中的元素赋值0~9中的随机数
                arr[i][j] = x.nextInt(10);
            }
        }
        System.out.println("给定的二维数组为：");
        //将二维数组进行打印
        for(int i=0;i<16;i++){
            for(int j=0;j<16;j++){
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }
    }
    //实现二维数组每行和的成员方法
    void sumRows(){
        int sum = 0;
        System.out.println("正在进行求和计算...");
        for (int i = 1;i < 17;i++){
            for (int j = 1;j < 17;j++){
                sum +=arr[i-1][j-1];
            }
            System.out.println("第" + i + "行的数据的和为" + sum);
            //将求和值重新设置为0，再进行下一行的求和计算
            sum = 0;
        }

    }
    //实现二维数组每列和的成员方法
    void sumCols(){
        //分别计算每一列数据的和
        int sum1 = 0;
        for (int i = 1;i < 17;i++){
            for (int j = 1;j < 17;j++){
                sum1 +=arr[j-1][i-1];

            }
            System.out.println("第" + i +"列的数据的和为" + sum1);
            //将求和值重新设置为0，再进行下一列的求和计算
            sum1 = 0;
        }

    }
    //实现二维数组两条对角线和的成员方法
    void sumDiagonal(){
        //计算从左上角到右下角数据的和
        int sum2 = 0;
        for (int i = 0;i < 16;i++){
            sum2+=arr[i][i];

        }
        System.out.println("从左上角到右下角数据的和为" + sum2);
        //计算从右上角到左下角数据的和为
        int sum3 = 0;
        for (int i = 0;i < 16;i++){
            sum3+=arr[i][15-i];
        }
        System.out.println("从右上角到左下角数据的和为" + sum3);

    }
    public static void main(String[] args){
    //声明Shuzu类型的引用指向Shuzu类型的对象
        ShuZu sz = new ShuZu();
        sz.show();
        sz.sumRows();
        sz.sumCols();
        sz.sumDiagonal();
    }
}
